package com.zqxq.lottery.api.feign;

import com.baomidou.mybatisplus.plugins.Page;
import com.zqxq.common.bo.RequestHeaderBO;
import com.zqxq.common.constant.Result;
import com.zqxq.lottery.entity.bo.jczq.JczqWorldCupBO;
import com.zqxq.lottery.entity.bo.jczq.MatchApiBO;
import com.zqxq.lottery.entity.bo.order.TradeInfoBO;
import com.zqxq.lottery.entity.bo.order.UserOrderBO;
import com.zqxq.lottery.entity.bo.product.ProductBO;
import com.zqxq.lottery.entity.bo.sys.*;
import com.zqxq.lottery.entity.bo.user.UserCashBO;
import com.zqxq.lottery.entity.bo.user.UserMsgBO;
import com.zqxq.lottery.entity.po.jczq.JczqMatchLivePO;
import com.zqxq.lottery.entity.po.sys.SysConfigPO;
import com.zqxq.lottery.entity.po.user.UserBindPO;
import com.zqxq.lottery.entity.po.user.UserWechatPO;
import com.zqxq.lottery.entity.vo.esports.ESportsPlaywayVO;
import com.zqxq.lottery.entity.vo.esports.ESportsVO;
import com.zqxq.lottery.entity.vo.expert.CommissionVO;
import com.zqxq.lottery.entity.vo.jczq.HomeMatchVO;
import com.zqxq.lottery.entity.vo.jczq.JczqGrandVO;
import com.zqxq.lottery.entity.vo.jczq.JczqMatchVO;
import com.zqxq.lottery.entity.vo.jczq.JczqWorldCupVO;
import com.zqxq.lottery.entity.vo.news.MatchNewsLikesVO;
import com.zqxq.lottery.entity.vo.order.UserOrderBetVO;
import com.zqxq.lottery.entity.vo.order.UserOrderVO;
import com.zqxq.lottery.entity.vo.sys.*;
import com.zqxq.lottery.entity.vo.user.*;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.cloud.netflix.feign.FeignClientsConfiguration;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@FeignClient(value = "lottery-server", configuration = FeignClientsConfiguration.class)
public interface LotteryServerFeignClient {

    /**
     * 用户
     *
     * @param vo
     * @return
     */
    @RequestMapping(value = "/userInfo/save", method = RequestMethod.POST)
    Result<Page<UserInfoCMSVO>> saveUserInfo(@RequestBody UserInfoVO vo);

    @RequestMapping(value = "/userInfo/getUserInfoByMobile", method = RequestMethod.POST)
    Result getUserInfoByMobile(@RequestParam("mobile") String mobile);
    @RequestMapping(value = "/userInfo/getUserByMobile", method = RequestMethod.POST)
    Result<UserInfoVO> getUserByMobile(@RequestParam("mobile") String mobile);

    /***
     * ----------------------------------马甲包-----------------------------------
     */
    @RequestMapping(value = "/sys/app/upgrade", method = RequestMethod.POST)
    Result appUpgrade(@RequestBody SysAppVersionBO search);

    @RequestMapping(value = "/sys/app/switch/bag", method = RequestMethod.POST)
    Result queryWhichBag(RequestHeaderBO search);

    @RequestMapping(value = "/jczq/app/switch/activity", method = RequestMethod.POST)
    Result queryWhichActivity(RequestHeaderBO search);

    /***
     * ----------------------------------竞猜-----------------------------------
     */
    @RequestMapping(value = "/sys/lotterykind/list", method = RequestMethod.POST)
    Result queryLotteryKindList(@RequestBody LotteryKindBO search);

    /***
     * ----------------------------------历史开奖-----------------------------------
     */
    @RequestMapping(value = "/sys/lotteryhnum/page", method = RequestMethod.POST)
    Result queryLotteryHnumPage(@RequestBody LotteryHnumBO search);

    @RequestMapping(value = "/sys/lotteryhnum/get", method = RequestMethod.POST)
    Result getLotteryHnum(@RequestParam("id") Long id);

    @RequestMapping(value = "/sys/lotteryhnum/last", method = RequestMethod.POST)
    Result queryLastOpenList();

    @RequestMapping(value = "/sys/lotteryhnum/getLotteryHnumByPeriod", method = RequestMethod.POST)
    Result<LotteryHnumVO> getLotteryHnumByPeriod(@RequestParam("period") Long period);


    /***
     * ----------------------------------订单-----------------------------------
     */
    @RequestMapping(value = "/order/userorder/add", method = RequestMethod.POST)
    Result addUserOrder(@RequestBody UserOrderVO vo);

    @RequestMapping(value = "/order/userorder/get/h5", method = RequestMethod.POST)
    Result<UserOrderVO> getUserOrderH5(@RequestParam("id") Long id);

    @RequestMapping(value = "/order/userorder/page/app", method = RequestMethod.POST)
    Result queryUserOrderPage(@RequestBody UserOrderBO search);

    @RequestMapping(value = "/order/userorder/dj/page/app", method = RequestMethod.POST)
    Result queryDJUserOrderPage(@RequestBody UserOrderBO search);

    @RequestMapping(value = "/order/userorder/getCount", method = RequestMethod.POST)
    Integer getUserOrderCount(@RequestParam("userId") Long userId);

    @RequestMapping(value = "/order/userorder/updateUserOrderStatus", method = RequestMethod.POST)
    Result updateUserOrderStatus(@RequestParam("id") String id, @RequestParam("status") String status);

    @RequestMapping(value = "/order/userorder/pay", method = RequestMethod.POST)
    Result payUserOrder(@RequestParam("userId") Long userId, @RequestParam("orderId") Long orderId, @RequestParam("couponId") Long couponId);

    /***
     * ----------------------------------用户资金-----------------------------------
     */
    @RequestMapping(value = "/user/usercash/save", method = RequestMethod.POST)
    Result saveUserCash(@RequestBody UserCashVO vo);



    /**
     * ---------------------------用户提现、充值记录-------------------------
     **/
    @RequestMapping(value = "/user/usercash/page", method = RequestMethod.POST)
    Result queryUserCashPage(@RequestBody UserCashBO search);
    @RequestMapping(value = "/user/usercash/commission/page", method = RequestMethod.POST)
    Result queryUserCashCommissionPage(@RequestBody UserCashBO search);

    /**
     * ------------------------------------优惠券抵扣-----------------------------------
     */
    @RequestMapping(value = "/activity/couponConsume", method = RequestMethod.POST)
    Result couponConsume(@RequestParam("couponId") Long couponId, @RequestParam("orderId") Long orderId);


    /**
     * banner
     *
     * @return
     * @param type
     */
    @RequestMapping(value = "/sysBanner/queryList", method = RequestMethod.POST)
    Result<List<SysBannerVO>> queryBannerList(@RequestParam("appKey") String appKey,@RequestParam("type") Integer type);

    @RequestMapping(value = "/sysBanner/saveClickNum", method = RequestMethod.POST)
    Result saveBannerClickNum(@RequestParam("id") Long id);

    /**
     * 平台发现
     *
     * @return
     */
    @RequestMapping(value = "/sysDiscovery/queryList", method = RequestMethod.POST)
    Result<List<SysDiscoveryVO>> queryDiscoveryList();

    /**
     * 消息
     *
     * @param baseBO
     * @return
     */
    @RequestMapping(value = "/sysMsg/queryPageList", method = RequestMethod.POST)
    Result<Page<SysMsgVO>> queryMsgPageList(@RequestBody SysMsgCMSBO baseBO);

    /***
     * ----------------------------------用户消息-----------------------------------
     */
    @RequestMapping(value = "/user/msg/page", method = RequestMethod.POST)
    Result<Page<UserMsgVO>> queryUserMsgPage(UserMsgBO search);

    @RequestMapping(value = "/user/msg/new", method = RequestMethod.POST)
    Result queryUserMsgNew(@RequestParam("userId") String userId);

    @RequestMapping(value = "/user/windowMsg/query", method = RequestMethod.POST)
    Result<List<UserWindowMsgVO>> queryWindowList(@RequestParam("userId") String userId);

    @RequestMapping(value = "/user/windowMsg/edit", method = RequestMethod.POST)
    Result updateWindowMsg(@RequestParam("ids") String ids);

    /**
     * 咨询
     *
     * @param baseBO
     * @return
     */
    @RequestMapping(value = "/sysNews/queryPageList", method = RequestMethod.POST)
    Result<Page<SysNewsVO>> queryNewsPageList(@RequestBody SysNewsCMSBO baseBO);

    @RequestMapping(value = "/sysNews/saveReaderNum", method = RequestMethod.POST)
    Result saveReaderNum(@RequestParam("id") Long id);

    @RequestMapping(value = "/sysNews/get", method = RequestMethod.POST)
    Result<SysNewsVO> getNews(@RequestParam("id") Long id);

    /**
     * 用户
     *
     * @param userId
     * @return
     */
    @RequestMapping(value = "/userInfo/get", method = RequestMethod.POST)
    Result<UserInfoVO> getUserInfo(@RequestParam("userId") Long userId);

    @RequestMapping(value = "/userInfo/realAuth", method = RequestMethod.POST)
    Result realAuth(@RequestParam("userId") Long userId, @RequestParam("realName") String realName, @RequestParam("idCard") String idCard);

    @RequestMapping(value = "/alipay/bindAlipay", method = RequestMethod.POST)
    Result bindAlipay(@RequestParam("userId") Long userId, @RequestParam("alipayAccount") String alipayAccount, @RequestParam("openId") String openId, @RequestParam("sex") Integer sex, @RequestParam("city") String city);

    @RequestMapping(value = "/wechat/bindWechat", method = RequestMethod.POST)
    Result bindWechat(@RequestParam("userId") Long userId, @RequestParam("unionId") String unionId, @RequestParam("openId") String openId);

    @RequestMapping(value = "/relationship/bindRelationship", method = RequestMethod.POST)
    Result bindRelationship(@RequestParam("userId") Long userId, @RequestParam("openId") String openId);

    @RequestMapping(value = "/relationship/getRelationship", method = RequestMethod.POST)
    Result<UserBindPO> getRelationship(@RequestParam("openId") String openId);

    @RequestMapping(value = "/userInfo/updatePayPassword", method = RequestMethod.POST)
    Result updatePayPassword(@RequestParam("userId") Long userId, @RequestParam("payPassword") String payPassword);

    @RequestMapping(value = "/alipay/queryUserAlipay", method = RequestMethod.POST)
    Result<List<UserAlipayVO>> queryUserAlipay(@RequestParam("alipayAccount") String alipayAccount);
    @RequestMapping(value = "/alipay/validateUserAlipay", method = RequestMethod.POST)
    Result validateUserAlipay(@RequestParam("userId") String userId);

    @RequestMapping(value = "/wechat/queryUserWechat", method = RequestMethod.POST)
    Result<List<UserWechatPO>> queryUserWechat(@RequestParam("openId") String openId);

    @RequestMapping(value = "/userInfo/updateUserInfo", method = RequestMethod.POST)
    Result updateUserInfo(@RequestParam("userId") Long userId, @RequestParam("headAddress") String headAddress, @RequestParam("nickName") String nickName);
    /**
     * 充值
     *
     * @param userId
     * @param money
     * @param payWay
     * @param payAccount
     * @param cashId
     * @return
     */
    @RequestMapping(value = "/userFunds/recharge", method = RequestMethod.POST)
    Result recharge(@RequestParam("userId") Long userId, @RequestParam("money") BigDecimal money, @RequestParam("payWay") Integer payWay, @RequestParam("payAccount") String payAccount, @RequestParam("cashId") Long cashId);

    @RequestMapping(value = "/userFunds/alipayConsume", method = RequestMethod.POST)
    Result alipayConsume(@RequestParam("userId") Long userId, @RequestParam("money") BigDecimal money, @RequestParam("orderId") Long orderId, @RequestParam("alipayAccount") String alipayAccount, @RequestParam("couponId") Long couponId, @RequestParam("balance") BigDecimal balance);

    @RequestMapping(value = "/userFunds/wechatConsume", method = RequestMethod.POST)
    Result wechatConsume(@RequestParam("userId") Long userId, @RequestParam("money") BigDecimal money, @RequestParam("orderId") Long orderId, @RequestParam("wechatAccount") String wechatAccount, @RequestParam("couponId") Long couponId, @RequestParam("balance") BigDecimal balance);

    @RequestMapping(value = "/userFunds/drawCash", method = RequestMethod.POST)
    Result drawCash(@RequestParam("userId") Long userId, @RequestParam("money") BigDecimal money, @RequestParam("payWay") Integer payWay, @RequestParam("payAccount") String payAccount, @RequestParam("payPassword") String payPassword);

    @RequestMapping(value = "/userFunds/balanceConsume", method = RequestMethod.POST)
    Result balanceConsume(@RequestParam("userId") Long userId, @RequestParam("money") BigDecimal money, @RequestParam("orderId") Long orderId, @RequestParam("payPassword") String payPassword, @RequestParam("couponId") Long couponId);

    @RequestMapping(value = "/tradeInfo/insert", method = RequestMethod.POST)
    Result insertTradeInfo(@RequestBody TradeInfoBO bo);

    /**
     * ----------------------------------竞猜足球-----------------------------------
     **/
    @RequestMapping(value = "/jczq/jczqMatch/get", method = RequestMethod.POST)
    Result<JczqMatchVO> getJczqMatchById(@RequestParam("id") String id);

    /*    @RequestMapping(value="/order/updateStatus", method = RequestMethod.POST)
        Result updateStatus(@RequestParam("id") String id, @RequestParam("status") String status);*/
    @RequestMapping(value = "/order/zdCalc", method = RequestMethod.POST)
    Result zdCalc();

    @RequestMapping(value = "/jczq/match/hot/list", method = RequestMethod.POST)
    Result hotMatchList(@RequestBody MatchApiBO search);

    @RequestMapping(value = "/jczq/league/hot/list", method = RequestMethod.POST)
    Result hotLeagueList();

    @RequestMapping(value = "/jczq/match/result/list", method = RequestMethod.POST)
    Result matchResultList(@RequestBody Map<String, Object> paramMap);

    @RequestMapping(value = "/jczq/jczqMatch/getByCode", method = RequestMethod.POST)
    Result getJczqMatchByCode(@RequestParam("code") String code);

    /**
     * ----------------------------------冠军-----------------------------------
     **/
    @RequestMapping(value = "/jczq/world/cup/list", method = RequestMethod.POST)
    Result<List<JczqWorldCupVO>> queryWorldCupList(JczqWorldCupBO search);

    @RequestMapping(value = "/jczq/world/queryAgainstPlanUrl", method = RequestMethod.POST)
    Result queryAgainstPlanUrl();

    @RequestMapping(value = "/jczq/world/cup/map", method = RequestMethod.POST)
    Result<Map<String, JczqWorldCupVO>> queryWorldCupMap(JczqWorldCupBO search);

    @RequestMapping(value = "/jczq/user/grand", method = RequestMethod.POST)
    Result<JczqGrandVO> queryUserGrand(@RequestParam("userId") Long userId);

    /**
     * ---------------------------------用户活动---------------------------------
     **/
    @RequestMapping(value = "/activity/queryUserActivityData", method = RequestMethod.POST)
    Result queryUserActivityStatistic(@RequestParam("userId") Long userId);

    @RequestMapping(value = "/activity/couponList", method = RequestMethod.POST)
    Result queryUserCouponList(@RequestParam("userId") Long userId, @RequestParam("status") Integer status, @RequestParam("pageNo") Integer pageNo, @RequestParam("pageSize") Integer pageSize);

    @RequestMapping(value = "/activity/getAvailableCouponList", method = RequestMethod.POST)
    Result getAvailableCouponList(@RequestParam("orderId") Long orderId);

    @RequestMapping(value = "/activity/updateCouponUsed", method = RequestMethod.POST)
    Result updateCouponUsed(@RequestParam("userId") Long userId, @RequestParam("couponId") Long couponId);

    //获取用户邀请数据排行榜
    @RequestMapping(value = "/activity/getInviteRankData", method = RequestMethod.POST)
    Result getInviteRankData();


    /**
     * ----------------------------------首页-----------------------------------
     **/
//    @RequestMapping(value = "/sysBanner/hot", method = RequestMethod.POST)
//    Result<SysBannerVO> homeHotBanner();
//
//    @RequestMapping(value = "/sysBanner/center", method = RequestMethod.POST)
//    Result<SysBannerVO> homeCenterBanner();
//
//    @RequestMapping(value = "/sysBanner/popup", method = RequestMethod.POST)
//    Result<SysBannerVO> homePopupBanner();

    @RequestMapping(value = "/jczq/home/hot/list", method = RequestMethod.POST)
    Result<List<HomeMatchVO>> homeHotMatchList();

    @RequestMapping(value = "/jczq/home/hot/list2", method = RequestMethod.POST)
    Result<List<HomeMatchVO>> homeHotMatchList2();

    @RequestMapping(value = "/jczq/channel/count", method = RequestMethod.POST)
    Result downloadChannelCount(@RequestParam("channel") String channel,@RequestParam("downSource") String downSource);

    /*--------------------------------系统配置-------------------------------------*/
    @RequestMapping(value = "/sysConfig/queryPageList", method = RequestMethod.POST)
    Result<SysConfigPO> queryConfigValue(@RequestParam("appKey") String appKey,@RequestParam("configKey") String configKey);

    /*---------------------------------代理商数据--------------------------------------*/
    @RequestMapping(value = "/userInfo/queryAgentDataById", method = RequestMethod.POST)
    Result queryAgentDataById(@RequestParam("agentId") String agentId, @RequestParam("timeType") Integer timeType,
                              @RequestParam("month") String month, @RequestParam("pageNo") Integer pageNo,
                              @RequestParam("pageSize") Integer pageSize);

    /*---------------------------------賽事分析--------------------------------------*/
    @RequestMapping(value = "/analysis/event/get", method = RequestMethod.POST)
    Result getAnalysisEvent(@RequestParam("code") String code);

    @RequestMapping(value = "/analysis/lineup/get", method = RequestMethod.POST)
    Result getAnalysisLineup(@RequestParam("code") String code);

    @RequestMapping(value = "/analysis/forecast/get", method = RequestMethod.POST)
    Result getAnalysisForecast(@RequestParam("code") String code);

    @RequestMapping(value = "/analysis/match/get", method = RequestMethod.POST)
    Result<JczqMatchLivePO> getAnalysisMatch(@RequestParam("code") String code);

    /**
     * 作者:    
     * 创建时间: 2018年7月23日下午16:09:38
     * 描述:    赛事分析-分析查询
     * 备注:
     *
     * @param code      赛事编号
     * @param odds_type 赔率类型(0-亚盘,1-欧赔,2-大小球)
     * @return
     */
    @RequestMapping(value = "/analysis/odds/get", method = RequestMethod.POST)
    Result getAnalysisOdds(@RequestParam("code") String code, @RequestParam("odds_type") Integer odds_type);

    /**
     * 作者:    
     * 创建时间: 2018年7月23日下午16:09:38
     * 描述:    赛事分析-比賽积分信息查询
     * 备注:
     *
     * @param code       赛事编号
     * @param point_type 积分类型 0-总积分；1-主场积分；2-客场积分
     * @return
     */
    @RequestMapping(value = "/analysis/point/get", method = RequestMethod.POST)
    Result getAnalysisPoint(@RequestParam("code") String code, @RequestParam("point_type") Integer point_type);

    /**
     * 作者:    
     * 创建时间: 2018年7月23日下午16:09:38
     * 描述:    赛事分析-分析查询
     * 备注:
     *
     * @param code    赛事编号
     * @param user_id 用户编号
     * @return
     */
    @RequestMapping(value = "/analysis/record/get", method = RequestMethod.POST)
    Result getAnalysisRecord(@RequestParam("code") String code, @RequestParam(value = "user_id",required = false) Long user_id);

    /**
     * 作者:    
     * 创建时间: 2018年7月23日下午16:09:38
     * 描述:    赛事分析-分析-投票
     * 备注:
     *
     * @param code      赛事编号
     * @param user_id   用户编号
     * @param vote_type 投票类型 0-主胜；1-平；3-客胜；
     * @return
     */
    @RequestMapping(value = "/analysis/vote/add", method = RequestMethod.POST)
    Result addAnalysisVote(@RequestParam("code") String code, @RequestParam("user_id") Long user_id, @RequestParam("vote_type") Integer vote_type);

    /*********************************跟单****************************************/
    /**
     * 作者:
     * 创建时间: 2018年8月3日下午13:59:38
     * 描述: 跟单-专家信息认证
     * 备注:
     *
     * @param user_id  用户编号
     * @param nick 昵称
     * @param head_portrait 头像地址
     * @param introduce 介绍
     * @return
     */
    @RequestMapping(value = "/expert/expertAuth", method = RequestMethod.POST)
    Result expertAuth(@RequestParam("user_id") Long user_id,@RequestParam("nick") String nick,@RequestParam("head_portrait") String head_portrait,@RequestParam("introduce") String introduce);

    /**
     * 作者:
     * 创建时间: 2018年8月3日下午13:59:38
     * 描述: 跟单-关注专家
     * 备注:
     *
     * @param expert_id  专家编号
     * @param fans_id 粉丝编号
     * @param status 状态(0:取消关注,1:关注)
     * @return
     */
    @RequestMapping(value = "/expert/follow", method = RequestMethod.POST)
    Result follow(@RequestParam("expert_id") Long expert_id,@RequestParam("fans_id") Long fans_id,@RequestParam("status") Integer status);

    /**
     * 作者:
     * 创建时间: 2018年8月3日下午13:59:38
     * 描述: 跟单-我的佣金信息
     * 备注:
     *
     * @param user_id  用户编号
     * @return
     */
    @RequestMapping(value = "/expert/commissionInfo", method = RequestMethod.POST)
    Result<CommissionVO> commissionInfo(@RequestParam("user_id") Long user_id);

    /**
     * 作者:
     * 创建时间: 2018年8月3日下午13:59:38
     * 描述: 跟单-查询专家信息
     * 备注:
     *
     * @param user_id  用户编号
     * @return
     */
    @RequestMapping(value = "/expert/getExpertInfo", method = RequestMethod.POST)
    Result getExpertInfo(@RequestParam("user_id") Long user_id);


    @RequestMapping(value = "/order/userorder/follow/add", method = RequestMethod.POST)
    Result addFollowOrder(@RequestParam("userId") Long userId, @RequestParam("orderId") Long orderId, @RequestParam("betTimes") Integer betTimes);

    @RequestMapping(value = "/order/userorder/getUserTodayPushOrder",method = RequestMethod.POST)
    Result getUserTodayPushOrder(@RequestParam("userId") String userId);

    @RequestMapping(value = "/order/userorder/getUserTwoDayPushOrder",method = RequestMethod.POST)
    Result<List<UserOrderVO>> getUserTwoDayPushOrder(@RequestParam("userId") String userId);

    @RequestMapping(value = "/follow/order/getList",method = RequestMethod.POST)
    Result getFollowOrder(@RequestParam("type") Integer type,@RequestParam("pageNo") Integer pageNo,
                          @RequestParam("pageSize") Integer pageSize,@RequestParam("followUserId")String followUserId);

    @RequestMapping(value = "/follow/order/programmeDetai",method = RequestMethod.POST)
    Result getProgrammeDetail(@RequestParam("orderId") String orderId,@RequestParam("expertId") String expertId,@RequestParam("followUserId") String followUserId);

    @RequestMapping(value = "/follow/order/expertDetail",method = RequestMethod.POST)
    Result getExpertDetail(@RequestParam("userId") String userId,@RequestParam("followUserId") String followUserId);

    @RequestMapping(value = "/follow/order/pushOrderList",method = RequestMethod.POST)
    Result getPushOrderList(@RequestParam("userId") String userId,@RequestParam("type") Integer type,@RequestParam("status") Integer status,
                            @RequestParam("pageNo") Integer pageNo,@RequestParam("pageSize") Integer pageSize);

    @RequestMapping(value = "/sign/reward",method = RequestMethod.POST)
    Result signReward(@RequestParam("userId") Long userId);

    @RequestMapping(value = "/address/get",method = RequestMethod.POST)
    Result getAddressById(@RequestParam("id") String id);

    @RequestMapping(value = "/address/save", method = RequestMethod.POST)
    Result saveAddress(@RequestBody UserAddressVO vo);

    //首页资讯
    @RequestMapping(value = "/matchNews/home",method = RequestMethod.POST)
    Result getHomeNews(@RequestParam("type") Integer type,@RequestParam("pageNo") Integer pageNo,@RequestParam("pageSize") Integer pageSize);

    @RequestMapping(value = "/matchNews/detail",method = RequestMethod.POST)
    Result getDetailNews(@RequestParam("newsId") String newsId);

    @RequestMapping(value = "/matchNews/like",method = RequestMethod.POST)
    Result getLikeNews(@RequestParam("newsId") String newsId, @RequestParam("userId") String userId,@RequestParam("payAmount") String payAmount);

    @RequestMapping(value = "/matchNews/payReward",method = RequestMethod.POST)
    Result payReward(@RequestBody MatchNewsLikesVO vo);

    @RequestMapping(value="/product/page", method = RequestMethod.POST)
    Result queryProductPage(@RequestBody ProductBO search);

    @RequestMapping(value="/product/get", method = RequestMethod.POST)
    Result getProduct(@RequestParam("productId") Long productId);

    @RequestMapping(value="/product/payDataProcure", method = RequestMethod.POST)
    Result payDataProcure(@RequestParam("userId") Long userId,@RequestParam("productId") Long productId);

    @RequestMapping(value="/product/addProductOrder", method = RequestMethod.POST)
    Result addProductOrder(@RequestBody UserProductVO vo);

    @RequestMapping(value = "/matchNews/click",method = RequestMethod.POST)
    Result clickNews(@RequestParam("newsId") String newsId);

    @RequestMapping(value = "/matchNews/match",method = RequestMethod.POST)
    Result newsHomeMatch();

    @RequestMapping(value = "/userInfo/exchangeDiamonds",method = RequestMethod.POST)
    Result exchangeDiamonds(@RequestParam("userId") Long userId,@RequestParam("payAmount") BigDecimal payAmount);

    @RequestMapping(value = "/userInfo/taskCenter",method = RequestMethod.POST)
    Result taskCenter(@RequestParam("userId") Long userId);

    @RequestMapping(value = "/userInfo/inviteUsersData",method = RequestMethod.POST)
    Result inviteUsersData(@RequestParam("userId") Long userId);

    @RequestMapping(value="/trade/page", method = RequestMethod.POST)
    Result queryUserProductPage(@RequestParam("userId") Long userId,@RequestParam("status") Integer status,@RequestParam("pageNo") Integer pageNo,@RequestParam("pageSize") Integer pageSize);
    @RequestMapping(value="/trade/get", method = RequestMethod.POST)
    Result getUserProduct(@RequestParam("tradeId") String tradeId);

    /***********************************电竞***********************************/
    @RequestMapping(value="/esports/get", method = RequestMethod.POST)
    Result<ESportsVO> queryESports(@RequestParam("matchId") String matchId);
    @RequestMapping(value="/esports/playtype/get", method = RequestMethod.POST)
    Result<ESportsPlaywayVO> queryESportsPlaytype(@RequestParam("matchId") String matchId, @RequestParam("playType") String playType);
    @RequestMapping(value="/esports/playtype/choice", method = RequestMethod.POST)
    Result<UserOrderBetVO> getMatchPlayTypeChoice(@RequestParam("userId") String userId, @RequestParam("period") String period, @RequestParam("playType") String playType);

    @RequestMapping(value="/esports/titleList", method = RequestMethod.POST)
    Result getESportsTitleList(@RequestParam("type") Integer type);
    @RequestMapping(value="/esports/homeList", method = RequestMethod.POST)
    Result getESportsHomeList(@RequestParam("pageNO") Integer pageNO,@RequestParam("pageSize") Integer pageSize,@RequestParam("type") Integer type);
    @RequestMapping(value="/esports/playwayList", method = RequestMethod.POST)
    Result getESportsPlaywayList(@RequestParam("matchId") String matchId,@RequestParam("round") String round);
    @RequestMapping(value="/esports/eSportsHead", method = RequestMethod.POST)
    Result getESportsHead(@RequestParam("matchId") String matchId);
}
